Примеры решения задач с использованием библиотеки STL (2 курс 4 семестр) | cmc@msu

| Введите условия поиска Отправить форму поиска

cmcmsu.no-ip.info | Web

Главная › 1-й курс ›
2-й курс
› 3-й курс › 4-й курс › 5-й курс › Спецкурсы › Ссылки › Карта › (версия для печати)

# Примеры решения задач с использованием библиотеки стандартных шаблонов STL (2 курс 4 семестр)

### Пример 1

Написать функцию, добавляющую в конец списка вещественных чисел элемент, значение которого равно среднему арифметическому всех его элементов.

    #include < iostream >
    #include < list >
    using namespace std;

    void g ( list <double> &lst )
    {
      list < double > :: const_iterator  p = lst.begin ();
      double s ( 0 );
      int    n;
      while ( p != lst.end () )
      {
        s = s + *p;
        ++n;
        ++p;
      }
      if ( n != 0 ) lst.push_back ( s/n ); // lst.push_back ( s/lst.size() );
    }

### Пример 2

Написать функцию, формирующую по заданному вектору целых чисел список из элементов вектора с четными значениями и распечатывающую его.

    #include < iostream >
    #include < vector >
    #include < list >

    using namespace std;

    void g ( vector <int> &v, list <int> &lst )
    {
      int i;

      for ( i = 0; i < v.size(); ++i )
        if ( !(v[i] % 2) ) lst.push_back ( v[i] );

      list < int > :: const_iterator  p = lst.begin ();
      while ( p != lst.end () )
      {
        cout << *p << endl;
        ++p;
      }
    }

    int main ()
    {
      vector < int > v(20);  list < int >  lst;
      int i;

      for ( i = 0; i < 20; ++i ) v[i] = i;
      cout << "vector is created" << endl;
      g ( v, lst );
      return 0;
    }

### Пример 3

Написать функцию, формирующую по заданному списку целых чисел вектор из элементов списка с четными значениями и распечатывающую его.

    #include < iostream >
    #include < vector >
    #include < list >

    using namespace std;

    void g ( vector <int> &v, list <int> &lst )
    {
      list < int > :: const_iterator  p = lst.begin ();
      while ( p != lst.end () )
      {
        if ( !(*p % 2) ) v.push_back(*p);
        ++p;
      }

      for ( int i = 0; i < v.size(); ++i ) cout << v[i] << endl;
    }

    int main ()
    {
      vector < int >  v ( 20 );
      list   < int >  lst;

      for ( i = 0; i < 20; ++i ) lst.push_back ( i );
      cout << "list is created" << endl;
      g (v, lst);
      return 0;
    }